Today's enterprise data centers store ever-larger amounts of business critical data that must be immediately and continuously available, and highly reliable. Information technologists, storage managers, and administrators of storage systems take many precautions to protect against the effects of failures in order to avoid downtime. Occasionally, however, a particular storage system, such as a storage array, requires upgrading or replacement.
To replace a current storage array with a new storage array, all data and connections on the current storage array must be migrated to the new array. The storage system then requires re-initialization. In addition, the host systems previously communicating with the replaced storage array require reconfiguration. This re-initialization and reconfiguration requires some downtime to complete; consequently, host applications can lose access to the storage array during this period, and potentially to some critical information. For many business systems running critical applications, this interruption is unacceptable.
In addition, many organizations employ a multi-vendor strategy that leads to a heterogeneous information technology (IT) environment. For example, some organizations maintain heterogeneous environments for reasons such as a tiered-storage practice, a legacy of decentralized purchasing decisions, or the result of a merger or acquisition. Many organizations also support a variety of operating systems in their data centers. Further, organizations may have aging but important applications running on older storage arrays. A consequence is that migration options are limited between heterogeneous storage arrays and multiple operating systems because of the complexity and the relative lack of adequate tools. The latest array-based copy tools are usually not compatible with the older arrays. Moreover, volume managers and multi-path software often have significant limitations with server-based migration tools. There is a need, therefore, for systems and methods of upgrading or replacing storage arrays transparently with respect to host systems communicating with the storage arrays, particularly in IT environments having heterogeneous storage arrays.